Skip to content

Install a missing provider CLI with one click - #121

Merged
badcuban merged 2 commits into
mainfrom
feat/one-click-provider-install
Aug 7, 2026
Merged

Install a missing provider CLI with one click#121
badcuban merged 2 commits into
mainfrom
feat/one-click-provider-install

Conversation

@badcuban

@badcuban badcuban commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Implements the approved one-click installer: a missing provider CLI gets a single cross-platform Install button (settings card header + first-run setup card row) that runs npm global install through the existing maintenance runner — shared locking, output capture, progress state, and automatic re-probe on completion. NPM_CONFIG_PREFIX honored end to end. Falls back to the linkified install guide when npm is absent. Contracts extend versionAdvisory (installCommand/canInstall, decoding defaults for old caches) and reuse server.updateProvider with an action field.

Testing: gates green; contracts 191, web unit 2076, web browser 379 (known #117 flake retried once), server provider suites 659 pass / 5 pre-existing Windows-local failures verified identical on main. Mandatory sandboxed functional test (real npm install into a scratch NPM_CONFIG_PREFIX) runs before merge; results will be posted here.

A provider whose CLI is absent now carries an install capability when npm
resolves on the server: `npm install -g <pkg>@latest`, the same command
family updates use, run through the same maintenance runner (shared
npm-global lock, output capture, updateState progress, post-command
re-probe). Verification differs by intent: an install must leave the
provider detectable, an update must leave it current; either shortfall
reports as unchanged with a plain explanation.

The settings card shows Install in its header action group with running
and failure states; the first-run setup card upgrades its Install guide
action to Install when the capability exists. Both render from streamed
snapshots. A configured NPM_CONFIG_PREFIX is honored end to end (baked
into the command's environment patch and display string), and with npm
absent everything falls back to the linkified guide.

Contracts: versionAdvisory gains installCommand/canInstall with decoding
defaults for older snapshot caches; server.updateProvider gains an
action field instead of a new RPC.
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
threadlines Skipped Skipped Aug 7, 2026 2:42pm

Request Review

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL labels Aug 7, 2026
The create-folder palette test (issue #117) flaked because the click
helper fired a synthetic click on the first DOM node matching the row
label. During a palette view transition an exit-animating copy of the
row can still be in the DOM with its React handlers gone, and a
synthetic click on it is silently lost; a real pointer cannot make that
mistake. The helper now emulates hit-testing and clicks the candidate
that owns the pixels at its own center.
@badcuban
badcuban merged commit 8727690 into main Aug 7, 2026
15 checks passed
@badcuban
badcuban deleted the feat/one-click-provider-install branch August 7, 2026 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant